package com.unknowpupil.design.factory.simple;

import com.unknowpupil.design.factory.BMW;
import com.unknowpupil.design.factory.BYD;
import com.unknowpupil.design.factory.Car;

/**
 * @Description: <br/>
 * <p>
 *      简单工厂。
 *
 *          增加新功能需要修改， 工厂方法模式可以避免。
 *
 *                违法开闭原则。
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2020/4/24 19:08
 * @Classname: CarFactory
 * @Version: 1.0
 */
public class CarSimpleFactory {
    /**
     *  第一种写法。
     * 为了方便弄个静态通常也称之为静态工厂模式。
     * @param type {@code String} 车类型
     * @return
     */
    public static Car createCar(String type) {
        if ("BMW".equals(type)) {
            return new BMW();
        } else if ("BYD".equals(type)) {
            return new BYD();
        }else {
            return null;
        }
    }

    /**
     * 第二种写法
     */

    public static Car createBMWCar(){
        return new BMW();
    }
    public static Car createBYDCar(){
        return new BYD();
    }


}
